package com.hsp.innerClass;

public class StaticInnerClass01 {
    public static void main(String[] args) {
        Outer10 outer10 = new Outer10();
        outer10.m1();

        //外部其他类 使用静态类
        //方式一
        Outer10.Inner10 inner10 = new Outer10.Inner10();
        inner10.say();

        //方式二
        //编写一个方法，可以返回一个静态内部类的实例
        Outer10.Inner10 inner101 = outer10.getInner10();
        System.out.println("=============");
        inner101.say();

        Outer10.Inner10 inner10_ = Outer10.getInner10_();
        inner10_.say();

    }
}


class Outer10{
    private int n1 = 10;
    private static String name = "张三";
    private static void cry(){}
    //Inner10就是静态内部类
    //1. 放在外部类的成员位置
    //2. 使用static修饰
    //3，可以直接访问外部类的所有静态成员，包含私有的，但不能直接访问非静态成员
    static class Inner10{
        public void say(){
            System.out.println(name);
            cry();
        }
    }

    public Inner10 getInner10(){
        return  new Inner10();
    }
    public static Inner10 getInner10_(){
        return new Inner10();
    }

    public void m1(){
        Inner10 inner10 = new Inner10();
        inner10.say();
    }
    }

